#pragma once
#include "DynamicData.h"
#include <vector>

///TODO:Documentation
class VlareClosure
{
	VlareHashMap	upvalues;
	VlareFunction		callee;
public:
	VlareClosure(VlareFunction v);
	~VlareClosure(void);
//todo: referenzen via DynamicData::TYPE_ARRAY->TYPE_POINTER
//todo: functioncall mit call by value wuerde "careaboutmemory"-flag kopieren und nach aufruf geloescht!
	DynamicData operator()(DynamicData& params);
	DynamicData& operator[](const char *const index);
};
